import type { TabBarType } from '../';
import { tabBarList } from './data';

/** TabBar 参数 */
export const tabBarProps = {
  /** 标识 */
  id: {
    type: String as PropType<string>,
    default: 'default',
  },
  /** 组件层级 */
  zIndex: {
    type: Number as PropType<number>,
    default: 500,
  },
  /** 列表 */
  list: {
    type: Array as PropType<TabBarType[]>,
    default: tabBarList,
  },
  /** 点击时是否跳转 TabBar 页面 */
  switchTab: {
    type: Boolean as PropType<boolean>,
    default: true,
  },
  /** 是否显示更多按钮 */
  showMore: {
    type: Boolean as PropType<boolean>,
    default: false,
  },
  /** TabBar 切换函数，非 button 类型时有效，返回 false 阻止切换。 */
  switchFn: {
    type: Function as PropType<
      (tabBar: TabBarType & { index: number | string }) => Promise<boolean>
    >,
    default: null,
  },
  /** TabBar 点击函数，button 类型时有效。 */
  clickFn: {
    type: Function as PropType<(tabBar: TabBarType & { index: number | string }) => Promise<any>>,
    default: null,
  },
};
